He estado buscando una forma de hacer el equivalente a comprimir y descomprimir matrices en Javascript. He encontrado una manera de comprimir, pero no de descomprimir.
Visión general:
Tengo dos listas y los primeros miembros de las listas van juntos, los segundos miembros van juntos, etc. Me gustaría barajar las listas para mantener este emparejamiento y luego terminar con dos listas separadas una vez más.
En Python:
#Define shuffle function shuffle = util.shuffle; #Lists of adult and child animals adult = ["cat", "dog", "chicken"] child = ["kitty", "puppy", "chick"] #zip them so I can shuffle while keeping pairs intact; then unzip them animals = list(zip(adult, child)) random.shuffle(animals) adult, child = zip(*animals) adult = list(adult) child = list(child)En Javascript:
En los foros de PsychoPy encontré una forma de hacer zipping que funcionará en Pavlovia.
animals = [] for Idx in range(len(adult)): animals.append([adult[Idx],labelsWhole[Idx%len(child)]]) shuffle(animals)Sobresaliente:
Pero ahora, ¿cómo puedo hacer el equivalente a: adult, child = zip(*animals) ?
Soy consciente de estapublicación similar . Sin embargo, solo hay un comentario que menciona "descomprimir" y no funcionará en PsychoPy.
Puede iterar sobre la lista comprimida y usar el desempaquetado de tupla
for(const [adult,child] of zippedList) ....Creé una demostración de sandbox aquí